package com.lesama.generics;

/*
    泛型： JDK5引入， 可以在编译阶段约束操作的数据类型， 并进行检查
    注意： 泛型默认的类型是Object
    泛型的好处：
        1. 统一数据类型
        2.将运行期间的错误提升到了编译期

 */

import java.util.ArrayList;
import java.util.Iterator;
import java.util.Random;

public class GenericsDemo1 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList();
        list.add("123");
        list.add("123");
        list.add("123");
        // list.add(new Random()); // 若不加泛型则运行时报错ClassCastException, 加了泛型就会在编译期间报错

        Iterator iterator = list.iterator();
        while (iterator.hasNext()) {
            Object next = iterator.next();
            String s = (String) next; // 将next向下转型为String
            System.out.println(s);
        }
    }
}
